www formular - vyplnit a odeslat - TWebBrowser
Otázka od: Ales Bolha
19. 9. 2002 7:53
Ahoj,
reaguji na starsi zpravu,kterou prikladam, z 21.5.2002, respektive z
14.11.2000, kde
popisuje Petr Vones automaticke vlozeni
emailove adresy do prihlasovaciho dialogu konference na web strankach,
za vyuziti komponenty TWebBrowser.
Pomoci tohoto zpusobu krasne vyplnim formular, ale nevim jak ho odeslat.
Nevite prosim nekdo, jak to udelat? Hrozne by me to zajimalo, ikdyz mam
jiny zpusob, kde hodnoty formulare odesilam jako parametry metody
TWebBrowser.Navigate. Pokud to nekoho zajima rad to v konferenci
zverejnim.
Diky Ales Bolha
Ahoj,
pokud ti jde o predvyplneni textoveho pole na strance tak to lze
udelat primo
upravou atributu jednotlivych HTML elementu v TWebBrowser.
Priklad, v prihlasovacim formulari do konference najdes:
<TD><input type="text" name="Email"></TD>
V aplikace lze pak pole Email vyplnit takto:
procedure TForm1.Button1Click(Sender: TObject);
begin
WebBrowser1.Navigate('http://www.delphi.cz/prihlas.asp');
end;
procedure TForm1.FillForm;
var
Doc: IHTMLDocument2;
I: Integer;
Element: OleVariant;
Elements: IHTMLElementCollection;
begin
Doc := WebBrowser1.Document as IHTMLDocument2;
Elements := Doc.all;
for I := 0 to Elements.length - 1 do
begin
Element := Elements.item(I, varEmpty);
if (Element.tagName = 'INPUT') and (Element.type = 'text') and
(Element.name = 'Email') then
Element.value := 'email@aaa.aaa';
end;
end;
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
begin
if pDisp = WebBrowser1.DefaultInterface then
FillForm;
end;
Petr Vones, amatersky programator
Odpovedá: Petr Slaby
19. 9. 2002 8:46
Ahoj,
myslim, ze mi kdysi fungovalo toto:
Element := Elements.item(I, varEmpty);
if (Element.type = 'submit') and (Element.name = [jmeno]) then
Element.Click;
Petr
Thursday, September 19, 2002, 7:43:32 AM, you wrote:
AB> Ahoj,
AB> reaguji na starsi zpravu,kterou prikladam, z 21.5.2002, respektive z
AB> 14.11.2000, kde
AB> popisuje Petr Vones automaticke vlozeni
AB> emailove adresy do prihlasovaciho dialogu konference na web strankach,
AB> za vyuziti komponenty TWebBrowser.
AB> Pomoci tohoto zpusobu krasne vyplnim formular, ale nevim jak ho odeslat.
AB> Nevite prosim nekdo, jak to udelat? Hrozne by me to zajimalo, ikdyz mam
AB> jiny zpusob, kde hodnoty formulare odesilam jako parametry metody
AB> TWebBrowser.Navigate. Pokud to nekoho zajima rad to v konferenci
AB> zverejnim.
AB> Diky Ales Bolha
AB> Ahoj,
AB> pokud ti jde o predvyplneni textoveho pole na strance tak to lze
AB> udelat primo
AB> upravou atributu jednotlivych HTML elementu v TWebBrowser.
AB> Priklad, v prihlasovacim formulari do konference najdes:
AB> <TD><input type="text" name="Email"></TD>
AB> V aplikace lze pak pole Email vyplnit takto:
AB> procedure TForm1.Button1Click(Sender: TObject);
AB> begin
AB> WebBrowser1.Navigate('http://www.delphi.cz/prihlas.asp');
AB> end;
AB> procedure TForm1.FillForm;
AB> var
AB> Doc: IHTMLDocument2;
AB> I: Integer;
AB> Element: OleVariant;
AB> Elements: IHTMLElementCollection;
AB> begin
AB> Doc := WebBrowser1.Document as IHTMLDocument2;
AB> Elements := Doc.all;
AB> for I := 0 to Elements.length - 1 do
AB> begin
AB> Element := Elements.item(I, varEmpty);
AB> if (Element.tagName = 'INPUT') and (Element.type = 'text') and
AB> (Element.name = 'Email') then
AB> Element.value := 'email@aaa.aaa';
AB> end;
AB> end;
AB> procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
AB> const pDisp: IDispatch; var URL: OleVariant);
AB> begin
AB> if pDisp = WebBrowser1.DefaultInterface then
AB> FillForm;
AB> end;
AB> Petr Vones, amatersky programator